/**
 * 
 */
package gestionBulletins.view;

import java.awt.event.ActionEvent;

import javax.swing.JOptionPane;

import gestionBulletins.model.Adherent;
import gestionBulletins.model.Enfant;
import gestionBulletins.model.persistance.DaoAdherent;
import gestionBulletins.model.persistance.DaoEnfant;

/**
 * @author paraita
 *
 */
public class ModifEnfantWindow extends AddEnfantWindow {

	private static final long serialVersionUID = 1L;
	private int idEnfant;

	public ModifEnfantWindow(InfosEnfantsWindow iew, Adherent parent) {
		super(iew.daoFactory, parent.getId(), true, 1);
		int numLigne = iew.table.getSelectedRow();
		Enfant enfant = iew.tableModel.getEnfant(numLigne);
		idEnfant = enfant.getId();

		/* je met les infos de l'objet enfant dans la vue */
		if ("Garçon".compareTo(enfant.getSexe()) == 0) {
			inputSexeEnfant.setSelectedIndex(0);
		}
		else {
			inputSexeEnfant.setSelectedIndex(1);
		}
		inputDateAnneeEnfant.setText(enfant.getDateNaissanceAnnee());
		inputDateJourEnfant.setText(enfant.getDateNaissanceJour());
		inputDateMoisEnfant.setText(enfant.getDateNaissanceMois());
		inputNomEnfant.setText(enfant.getNom());
		inputPrenomEnfant.setText(enfant.getPrenom());
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == boutonSortir) {
			resetFormulaire();
			this.setVisible(false);
		}
		if (e.getSource() == boutonAjouter) {
			if (verifierFormulaire()) {
				DaoEnfant de = daoFactory.getDaoEnfant();
				Enfant updatedEnfant = de.requestById(idEnfant);
				updatedEnfant.setNom(inputNomEnfant.getText());
				updatedEnfant.setPrenom(inputPrenomEnfant.getText());
				updatedEnfant.setDateNaissanceAnnee(inputDateAnneeEnfant.getText());
				updatedEnfant.setDateNaissanceJour(inputDateJourEnfant.getText());
				updatedEnfant.setDateNaissanceMois(inputDateMoisEnfant.getText());
				updatedEnfant.setSexe((String)inputSexeEnfant.getSelectedItem());
				DaoAdherent daoAdherent = daoFactory.getDaoAdherent();
				Adherent parent = daoAdherent.requestById(idParent);
				updatedEnfant.setId(idEnfant);
				if ("Mr".compareTo(parent.getEtatCivil()) == 0) {
					updatedEnfant.setPere(idParent);
				}
				else {
					updatedEnfant.setMere(idParent);
				}
				//System.out.println("on met a jour " + updatedEnfant);
				de.update(updatedEnfant);
				resetFormulaire();

				/* et je notifie la table des enfants des changements */
				if (modification) {
					notifyObserver();
				}

				/* et on ferme la fenetre */
				setVisible(false);
			}
			else {
				/*
				 * http://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html
				 */
				JOptionPane.showMessageDialog(this, "Erreur de saisie ! vérifiez le formulaire svp");
			}
		}

	}


}
